package DTO;

import java.awt.*;

/**
 * Esta classe tem por função manter os elementos presentes na área de jogo.
 *
 * @author (R Soares)
 * @version (1.0)
 */
public class ElementoDTO
{
    // Atributos -----------------------------------------------------*
    private Ponto _localizacaoAtual;
    private Ponto _destino;
    private int _diametro;
    private float _velocidade;
    private double _pxVelocidade;
    private double _pyVelocidade;
    private float _massa;
    private double _angulo;

    /**
     * Construtor da Classe ElementoDTO
     */
    public ElementoDTO()
    {

    }

    // Método ------------------------------------------------------- *

    /**
     * Método que recebe o valor da massa do elemento;
     *
     * @param  float - diametro : valor do diametro
     */
    public void setDiametro(int diametro)
    {
        _diametro = diametro;
    }

    /**
     * Método que recebe o valor da velocidade do elemento;
     *
     * @param  float - velocidade : valor da velocidade
     */
    public void setVelocidade(float velocidade)
    {
        _velocidade = velocidade;
    }

    /**
     * Método que recebe o valor da massa do elemento;
     *
     * @param  float - massa : valor da massa
     */
    public void setMassa(float massa)
    {
        _massa = massa;
    }

    /**
     * Método que recebe uma nova localização para o ElementoDTO;
     *
     * @param  ponto - localizacaoAtual : nova localização do ElementoDTO
     */
    public void setLocalizacaoAtual(Ponto localizacaoAtual)
    {
        _localizacaoAtual = localizacaoAtual;
    }

    /**
     * Método que recebe o ponto de destino do movimento do meteoro
     *
     * @param  ponto - destino : destino do deslocamento
     */
    public void setDestino(Ponto destino)
    {
        _destino = destino;
    }

    /**
     * Método que retorna a localização atual do ElementoDTO;
     *
     * @return   Ponto : Ponto de localização atual do Elemento.
     */
    public Ponto getLocalizacaoAtual()
    {
        return _localizacaoAtual;
    }

    /**
     * Método que retorna p ponto de destino da trajetória do Elemento
     *
     * @return   Ponto : Ponto de Destino.
     */
    public Ponto getDestino()
    {
        return _destino;
    }

    /**
     * Método que retorna o valor do diametro do ElementoDTO;
     *
     * @return   int : diametro do elemento
     */
    public int getDiametro()
    {
        return _diametro;
    }

    /**
     * Método que retorna o valor da velocidade do ElementoDTO;
     *
     * @return   floar : velocidade de deslocamento do elemento.
     */
    public float getVelocidade()
    {
        return _velocidade;
    }

    /**
     * Método que retorna o valor da Massa do ElementoDTO;
     *
     * @return   floar : massa do elemento.
     */
    public float getMassa()
    {
        return _massa;
    }

    /**
     * Recebe um novo valor para o angulo da posição do elemento
     *
     * @param  double - _novoAngulo : valor do novo angulo;
     */
    public void setAngulo(double novoAngulo)
    {
        _angulo = novoAngulo;
    }

    /**
     * Retorna o valor atual do ângulo da posicao do elemento
     *
     * @return  double : valor do ângulo
     */
    public double getAngulo()
    {
        return _angulo;
    }

    /**
     * Recebe um novo valor para o componente X da velocidade do elemento
     *
     * @param  double - _pxVelocidade : valor do componente X da velocidade;
     */
    public void setPxVelocidade(double pxVelocidade)
    {
        _pxVelocidade = pxVelocidade;
    }

    /**
     * Retorna um novo valor para o componente X da velocidade do elemento
     *
     * @return  double : valor do componente X da velocidade;
     */
    public double getPxVelocidade()
    {
        return _pxVelocidade;
    }

    /**
     * Recebe um novo valor para o componente Y da velocidade do elemento
     *
     * @param  double - _pxVelocidade : valor do componente Y da velocidade;
     */
    public void setPyVelocidade(double pyVelocidade)
    {
        _pyVelocidade = pyVelocidade;
    }

    /**
     * Retorna um novo valor para o componente Y da velocidade do elemento
     *
     * @return  double : valor do componente Y da velocidade;
     */
    public double getPyVelocidade()
    {
        return _pyVelocidade;
    }
}
